export let Vue ;
import RouterLink from './components/link'
import RouterView from './components/view'

export default  install = function (_Vue) {
    Vue = _Vue ; 
    Vue.mixin({
        beforeCreate() {
             // 父 store  子 拿父store  孙子 拿子的store
            // 我给根实例增加一个_router属性
            // 所有人都拿到根上的_router
          if(this.$options.router){
              this._router = this.$options.router; //当前实例 new Vue({router})
              this._routerRoot = this; 
            //   初始化路由逻辑，只初始化一次
            this._router.init(this)
          }else {
              this._routerRoot = this.$parent&& this.$parent._routerRoot // 所有组件都有_routerRoot._router获取路由的实例
          }
           
        },
        /*ps*/
     // _routerRoot 是根实例  根实例上有_router属性
    // 所有的组件都可以获取根 _routerRoot, 获取根的属性 _routerRoot._router
    })
//给所有组件统一添加$route,$router，这玩意不一定是函数
    Object.defineProperty(Vue.prototype,'$router',{
        get(){

        }
    })
    Object.defineProperty(Vue.prototype,'$route',{
        get(){

        }
    })
    Vue.component('router-link',RouterLink)
    Vue.component('router-view',RouterView)

}
